МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра «Захист інформації»
З В І Т
про виконання лабораторної роботи №4
з курсу «Програмування комп’ютерної графіки»
на тему:
«Тривимірні побудови. Буфер глибини. Видові параметри. Паралельна і перспективна проекції»
Мета роботи – з'ясувати особливості тривимірного моделювання, побудови об'ємних зображень як проекцій на екранній площині; дати поняття про параметри вигляду.
.
ЛІСТИНГ ПРОГРАМИ
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;
namespace lab_4
{
public partial class Form1 : Form
{
// массив вершин создаваемого геометрического объекта
private float[,] GeomObject = new float[32, 3];
// счеткик его вершин
private int count_elements = 0;
public Form1()
{
InitializeComponent();
// инициализация для работы с openGL
AnT.InitializeContexts();
}
private void Form1_Load(object sender, EventArgs e)
{
// инициализация OpenGL, много раз комментированная ранее
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
Gl.glClearColor(255, 255, 255, 1);
Gl.glViewport(0, 0, AnT.Width, AnT.Height);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
Gl.glEnable(Gl.GL_DEPTH_TEST);
Figure.SelectedIndex = 0;
Make_coordinates(Figure.SelectedIndex);
// начало визуализации (активируем таймер)
Timer.Start();
}
public void Make_coordinates(int i)
{
switch (i)
{
case 0:
{
Array.Clear(GeomObject, 0, 96);
GeomObject[0, 0] = -0.5f;
GeomObject[0, 1] = -0.5f;
GeomObject[0, 2] = -0.5f;
GeomObject[1, 0] = -0.5f;
GeomObject[1, 1] = 0.5f;
GeomObject[1, 2] = -0.5f;
GeomObject[2, 0] = 0.8f;
GeomObject[2, 1] = -0.5f;
GeomObject[2, 2] = -0.5f;
GeomObject[3, 0] = 0.5f;
GeomObject[3, 1] = -0.8f;
GeomObject[3, 2] = -0.5f;
GeomObject[4, 0] = -0.5f;
GeomObject[4, 1] = -0.5f;
GeomObject[4, 2] = 0.5f;
GeomObject[5, 0] = -0.5f;
GeomObject[5, 1] = 0.5f;
GeomObject[5, 2] = 0.5f;
GeomObject[6, 0] = 0.8f;
GeomObject[6, 1] = -0.5f;
GeomObject[6, 2] = 0.5f;
GeomObject[7, 0] = 0.5f;
GeomObject[7, 1] = -0.8f;
GeomObject[7, 2] = 0.5f;
// количество вершин рассматриваемого геометричекого объекта
count_elements = 8;
// устанавливаем ось X по умолчанию
comboBox1.SelectedIndex = 0;
break;
}
case 1:
{
Array.Clear(GeomObject, 0, 96);
// трикутник для визуализации (4 точки)
GeomObject[0, 0] = -1f;
GeomObject[0, 1] = -1f;
GeomObj...